﻿using System;
namespace QQSDK
{
    public class SDKData
    {
        [Serializable]
        public class GoogleStore
        {
            public OpenMediationData openMediationData;
            public AdjustData adjustData;
            public ThinkingData thinkingData;
            public AdmobData admobData;
            public FacebookData facebookData;
            public CrashAnalyticsData crashAnalyticsData;
        }

        [Serializable]
        public class ChinaStore
        {
            public OpenMediationData openMediationData;
            public AdjustData adjustData;
            public ThinkingData thinkingData;
            public string chinaChannelName;
            public ReyunData reyunData;
            public CrashAnalyticsData crashAnalyticsData;
        }

        [Serializable]
        public class AppleStore
        {
            public OpenMediationData openMediationData;
            public AdjustData adjustData;
            public ThinkingData thinkingData;
            public FacebookData facebookData;
            public AdmobData admobData;
            public ReyunData reyunData;
            public CrashAnalyticsData crashAnalyticsData;
        }

        [Serializable]
        public class OpenMediationData
        {
            public string app_id;
            public string splash_id;
            public string banner_id;
        }

        [Serializable]
        public class ThinkingData
        {
            public string url = "https://analytics.socialcube.me";
            public string app_id;
            public override string ToString()
            {
                return string.Format("[ThinkingData: url={0}, app_id={1}]", url, app_id);
            }
        }

        [Serializable]
        public class FacebookData
        {
            public string app_id;
            public override string ToString()
            {
                return string.Format("[FacebookData: app_id={0}]", app_id);
            }
        }

        [Serializable]
        public class CrashAnalyticsData
        {
            public bool enable = false;
            public string bugly_app_id = string.Empty;
        }

        [Serializable]
        public class AdmobData
        {
            public string app_id;
            public override string ToString()
            {
                return string.Format("[AdmobData: app_id={0}]", app_id);
            }
        }

        [Serializable]
        public class AdjustData
        {
            public string app_token;
            public bool enable_default_trackName;
            public string default_trackName_token;
            public bool enable_secrets;
            public string secretID;
            public string info1;
            public string info2;
            public string info3;
            public string info4;
            public string splash_im_token;
            public string banner_im_token;
            public string interstitial_im_token;
            public string rewardvideo_im_token;
            public string native_im_token;

        }
        //ReyunData
        [Serializable]
        public class ReyunData
        {
            public string app_id;
        }

        [Serializable]
        public class ApplovinData
        {
            public bool status;
            public string sdk_key;
            public ApplovinData(bool status, string sdk_key)
            {
                this.status = status;
                this.sdk_key = sdk_key;
            }
            public override string ToString()
            {
                return string.Format("[ApplovinData: status={0}, sdk_key={1}]", status, sdk_key);
            }
        }
        public int platformStore;
        public GoogleStore googleStore;
        public ChinaStore chinaStore;
        public AppleStore appleStore;

        public override string ToString()
        {
            return string.Format("[SDKData: platformStore={0}, googleStore={1}, chinaStore={2}, appleStore={3}]", platformStore, googleStore, chinaStore, appleStore);
        }
    }
}